package com.ruoyi.system.service.impl;

import com.ruoyi.system.domain.KeyAlert;
import com.ruoyi.system.mapper.KeyAlertMapper;
import com.ruoyi.system.service.KeyAlertService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.Date;
import java.util.List;

/**
 * 按键报警表(KeyAlert)表服务实现类
 *
 * @author makejava
 * @since 2023-03-27 17:57:22
 */
@Service("keyAlertService")
public class KeyAlertServiceImpl implements KeyAlertService {
    @Resource
    private KeyAlertMapper keyAlertMapper;
//    @Autowired
//    private RedisCache redisCache;
//    @Resource
//    private JobPlanBillDeclareService jobPlanBillDeclareService;

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    @Override
    public KeyAlert queryById(Integer id) {
        return this.keyAlertMapper.selectKeyAlertById(id);
    }

    /**
     * 分页查询
     *
     * @param keyAlert 筛选条件
     * @return 查询结果
     */
    @Override
    public List<KeyAlert> queryByPage(KeyAlert keyAlert) {
        return this.keyAlertMapper.selectKeyAlertList(keyAlert);
    }

//    public String getNameByEntityId(String entityId) {
//
//        org.json.JSONArray jsonArray = null;
//        try {
//            if (redisCache.hasKey("geo_system_persons")) {
//                Object cacheObject = redisCache.getCacheObject("geo_system_persons");
//                jsonArray = new JSONArray(cacheObject);
//            } else {
//                jsonArray = getStaffUserList(1, 1000);
//                redisCache.setCacheObject("geo_system_persons", jsonArray, 24, TimeUnit.HOURS);
//            }
//        } catch (Exception e) {
//            e.printStackTrace();
//            return "";
//        }
//
//        if (jsonArray==null || jsonArray.length()==0) {
//            return "";
//        }
//
//        for (int i=0; i< jsonArray.length(); i++) {
//            JSONObject jsonObject = (JSONObject) jsonArray.get(i);
//            if (Integer.parseInt(entityId) == jsonObject.getInt("id")) {
//                return jsonObject.getStr("name");
//            }
//        }
//
//        return "";
//    }

//    public org.json.JSONArray getStaffUserList(Integer type, Integer pageSize) {
//        Map<String, Object> map = new HashMap<>(10);
//        if (type!=null) {
//            // 员工类型:1.内部 2.访客 3.承包商
//            map.put("type", "1");
//        }
//        int size = pageSize==null ? 10000 : pageSize;
//        map.put("orgId", 100);
//        map.put("pageNum", 1);
//        map.put("pageSize", size);  // 超时时间（秒）
//
//        String result = GeoConfig.sendPost(GeoConfig.enclosureList, map);
//        org.json.JSONObject jsonObj = new org.json.JSONObject(result);
////        JSONObject jsonResponse = JSONUtil.parseObj(result, false);
////        List<JSONObject> originalList = (List<JSONObject>)jsonResponse.remove("re");
////        List<GeoStaffVo> listVo = originalList.stream().map(item -> JSONUtil.toBean(item.toString(), GeoStaffVo.class)).collect(Collectors.toList());
//
//        if (!jsonObj.has("data") || jsonObj.getInt("code") != 200) {
//            return null;
//        }
//        org.json.JSONObject dataJson = jsonObj.getJSONObject("data");
//        return dataJson.getJSONArray("records");
//    }

    /**
     * 新增数据
     *
     * @param keyAlert 实例对象
     * @return 实例对象
     */
    @Override
    public KeyAlert insert(KeyAlert keyAlert) {
        keyAlert.setCreateTime(new Date());
        keyAlert.setCreateBy("系统管理员");
        keyAlert.setUpdateTime(new Date());
        keyAlert.setUpdateBy("系统管理员");
        keyAlert.setIsUpload(0);
        this.keyAlertMapper.insertKeyAlert(keyAlert);
        return keyAlert;
    }

    /**
     * 修改数据
     *
     * @param keyAlert 实例对象
     * @return 实例对象
     */
    @Override
    public KeyAlert update(KeyAlert keyAlert) {
        keyAlert.setUpdateTime(new Date());
        keyAlert.setUpdateBy("系统管理员");
        this.keyAlertMapper.updateKeyAlert(keyAlert);
        return this.queryById(keyAlert.getId());
    }

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    @Override
    public boolean deleteById(Integer id) {
        return this.keyAlertMapper.deleteKeyAlertById(id) > 0;
    }
}
